package com.sztx.pay.center.dataaccess.dao.mysql;

import java.util.List;

import org.apache.ibatis.annotations.Param;

import com.sztx.pay.center.dataaccess.domain.FinanceStatisticsDO;
import com.sztx.se.dataaccess.mysql.BaseMysqlDAO;
import com.sztx.se.dataaccess.mysql.config.PageQuery;

public interface FinanceStatisticsMysqlDAO extends BaseMysqlDAO<FinanceStatisticsDO> {
    

    FinanceStatisticsDO listPage(@Param("financeStatisticsDO") FinanceStatisticsDO financeStatisticsDO, @Param("pageQuery") PageQuery pageQuery);
    
    List<FinanceStatisticsDO> findStatistics(@Param("financeStatisticsDO") FinanceStatisticsDO financeStatisticsDO,@Param("userId") String userId,@Param("startTime") String startTime,@Param("endTime")String endTime);
    
    FinanceStatisticsDO findStatisticsInAndOut(@Param("financeStatisticsDO") FinanceStatisticsDO financeStatisticsDO,@Param("userId") String userId,@Param("startTime") String startTime,@Param("endTime")String endTime);
    
    FinanceStatisticsDO findStatisticsInAndOutForPlatform(@Param("financeStatisticsDO") FinanceStatisticsDO financeStatisticsDO,@Param("type") int type,@Param("startTime") String startTime,@Param("endTime")String endTime);

    Integer save(FinanceStatisticsDO financeStatisticsDO);

    Integer listCount(@Param("financeStatisticsDO") FinanceStatisticsDO financeStatisticsDO);
    
    Integer updateInfo(@Param("amount") long amount, @Param("id")Integer id);
    Integer updateInfoForSchedule(@Param("amount") long amount, @Param("id")Integer id);

	void saveOrUpdate(@Param("financeStatisticsDO") FinanceStatisticsDO financeStatisticsDO);
	void saveOrUpdateForSchedule(@Param("financeStatisticsDO") FinanceStatisticsDO financeStatisticsDO);
   
	FinanceStatisticsDO findUnRepeat(@Param("financeStatisticsDO") FinanceStatisticsDO financeStatisticsDO, @Param("pageQuery") PageQuery pageQuery);
	FinanceStatisticsDO findUnRepeatForSchedule(@Param("financeStatisticsDO") FinanceStatisticsDO financeStatisticsDO, @Param("pageQuery") PageQuery pageQuery);
}